/****************************************************************************
 **
 ** Trolltech hereby grants a license to use the Qt/Eclipse Integration
 ** plug-in (the software contained herein), in binary form, solely for the
 ** purpose of creating code to be used with Trolltech's Qt software.
 **
 ** Qt Designer is licensed under the terms of the GNU General Public
 ** License versions 2.0 and 3.0 ("GPL License"). Trolltech offers users the
 ** right to use certain no GPL licensed software under the terms of its GPL
 ** Exception version 1.2 (http://trolltech.com/products/qt/gplexception).
 **
 ** THIS SOFTWARE IS PROVIDED BY TROLLTECH AND ITS CONTRIBUTORS (IF ANY) "AS
 ** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 ** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 ** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
 ** OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 ** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 ** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
 **
 ** Since we now have the GPL exception I think that the "special exception
 ** is no longer needed. The license text proposed above (other than the
 ** special exception portion of it) is the BSD license and we have added
 ** the BSD license as a permissible license under the exception.
 **
 ****************************************************************************/

#include "QTAvkonView.h"

QTAvkonView::QTAvkonView(QWidget *parent) :
	QMainWindow(parent)
	{

	animTime = 500;
	createGuiControlComponents();
	createSubSlidingWidgets();
	createSlidingStackedWidget();
	createMainLayout();
	createConnections();

	}

QTAvkonView::~QTAvkonView()
	{

	}
void QTAvkonView::createGuiControlComponents()
	{
	int _min = 500;
	int _max = 1500;
	animTime = (_min + _max) >> 1;

	buttonNext = new QPushButton(tr("Next"));
	buttonPrev = new QPushButton(tr("Prev"));
	checkWrap = new QCheckBox(tr("Wrap"));
	checkVertical = new QCheckBox(tr("Vertical"));

	listAll = new QComboBox();
	listAll->addItem(tr("Page 1"));
	listAll->addItem(tr("Page 2"));
	listAll->addItem(tr("Page 3"));
	listAll->addItem(tr("Page 4"));
	listAll->setMinimumHeight(40);

	speedLabel = new QLabel(tr("Anim. Time:"));
	speedDisplay = new QLCDNumber();

	slideSpeed = new QSlider(Qt::Horizontal);
	slideSpeed->setMinimum(_min);
	slideSpeed->setMaximum(_max);

	//initialize slider and its display
	slideSpeed->setValue(animTime);
	speedDisplay->display(animTime);
	}

void QTAvkonView::createMainLayout()
	{
	centralWidget = new QWidget(this);
	mainLayout = new QVBoxLayout();
	centralWidget->setLayout(mainLayout);
	controlPaneLayout = new QGridLayout();
	mainLayout->addWidget(slidingStacked);
	mainLayout->addLayout(controlPaneLayout);
	int row;
	row = 1;
	controlPaneLayout->addWidget(buttonPrev, row, 1, 1, 1);
	controlPaneLayout->addWidget(buttonNext, row, 2, 1, 1);
	controlPaneLayout->addWidget(checkWrap, ++row, 1, 1, 1);
	controlPaneLayout->addWidget(checkVertical, row, 2, 1, 1);
	controlPaneLayout->addWidget(speedLabel, ++row, 1, 1, 1);
	controlPaneLayout->addWidget(speedDisplay, row, 2, 1, 1);
	controlPaneLayout->addWidget(slideSpeed, ++row, 1, 1, 2);
	controlPaneLayout->addWidget(listAll, ++row, 1, 1, 2);

	this->setCentralWidget(centralWidget);
	}

void QTAvkonView::createSubSlidingWidgets()
	{
	slidingStacked = new SlidingStackedWidget(this);
	slideWidget1 = new QMyWidget3(slidingStacked);
	slideWidget2 = new QMyWidget4(slidingStacked);
	slideWidget3 = new QMyWidget5(slidingStacked);
	slideWidget4 = new QMyWidget6(slidingStacked);
	}
void QTAvkonView::createSlidingStackedWidget()
	{

	slidingStacked->AddWidgetToStack(slideWidget1);
	slidingStacked->AddWidgetToStack(slideWidget2);
	slidingStacked->AddWidgetToStack(slideWidget3);
	slidingStacked->AddWidgetToStack(slideWidget4);
	slidingStacked->ActivateWidget(slideWidget1->Id());
	}

void QTAvkonView::createConnections()
	{
	QObject::connect(buttonNext, SIGNAL(pressed()), slidingStacked,
			SLOT(slideInNext()));
	QObject::connect(buttonPrev, SIGNAL(pressed()), slidingStacked,
			SLOT(slideInPrev()));
	QObject::connect(checkWrap, SIGNAL(clicked(bool)), slidingStacked,
			SLOT(setWrap(bool)));
	QObject::connect(checkVertical, SIGNAL(clicked(bool)), slidingStacked,
			SLOT(setVerticalMode(bool)));
	QObject::connect(slideSpeed, SIGNAL(valueChanged(int)), slidingStacked,
			SLOT(setSpeed(int)));
	QObject::connect(slideSpeed, SIGNAL(valueChanged(int)), speedDisplay,
			SLOT(display(int)));
	QObject::connect(listAll, SIGNAL(currentIndexChanged(int)), slidingStacked,
			SLOT(SliderInIdx(int)));

	}

void QTAvkonView::SlideNext()
	{
	slidingStacked->slideInNext();
	}
void QTAvkonView::SlidePrv()
	{
	slidingStacked->slideInPrev();
	}
void QTAvkonView::setVertical(bool v)
	{
	slidingStacked->setVerticalMode(v);
	}
bool QTAvkonView::getVertical()
	{
		return slidingStacked->getVerticalMode(); 
	}



//////////////////
////////////////
////////////
